﻿using Application_Core.Bestellung_Component.Data_Access_Layer;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Application_Core.Bestellung_Component.Business_Logic_Layer
{
    internal interface BestellungComponentBusinessLogic
    {
        /// <summary>
        /// Erstellt ein neues Angebot.
        /// </summary>
        /// <param name="angebot">Angebot</param>
        /// <param name="Kundennummer">Kundennummer</param>
        /// <param name="Bauteilnummer">Bauteilnummer</param>
        void CreateAngebot(Angebot angebot, int Kundennummer, int Bauteilnummer);

        /// <summary>
        /// Erstellt einen neuen Auftrag anhand eines Angebots.
        /// </summary>
        /// <param name="angebot">Angebot</param>
        /// <param name="auftragsnummer">Neue Auftragsnummer</param>
        /// <param name="fertigungsauftragsnummer">Neue Fertigungsauftragsnummer</param>
        void CreateAuftrag(Angebot angebot, int auftragsnummer, int fertigungsauftragsnummer);

        /// <summary>
        /// Löscht ein vorhandenen Auftrag inkl. seinem Fertigungsauftrag.
        /// </summary>
        /// <param name="auftragsnummer">Auftragsnummer</param>
        /// <param name="fertigungsauftragsnummer">Fertigungsauftragsnummer</param>
        void DeleteAuftrag(int auftragsnummer, int fertigungsauftragsnummer);
    }
}
